Snippet extraction and ranking

ABSTRACT

Described herein is a technology that facilitates efficient automated mining of topic-related aspects of user-generated content based on automated analysis of the user-generated content. Locations are automatically learned based on dividing documents into document segments, and decomposing the segments into local topics and global topics. Techniques are described that facilitate automatically extracting snippets. These techniques include, for example, computer annotating travelogues with learned tags and images, performing topic learning to obtain an interest model, performing location matching based on the interest model, calculating geographic and semantic relevance scores, ranking snippets based on the geographic and semantic relevance scores, and searching snippets with a “location+context term” query.

BACKGROUND

As various Web 2.0 technologies have prospered blogs, wikis, and social networking technologies have become increasingly popular with consumers who increasingly share information about their experiences, frequently including information about travel experiences. While consumers increasingly may read such information on the Web, they are not always able to make use of it for their own travel planning because user blog entries are prolific and the information is unstructured, inconsistent, and influenced by the authors' personal biases, which are not always apparent to a reader. Thus, when looking for travel information, consumers often turn to travel planning sites, rather than user blogs. However many travel planning sites rely on editorial content, which may reflect the editors' biases and may be influenced by advertisers and partnerships, which may not be readily apparent to the consumer.

SUMMARY

A technology that facilitates automated mining of topic-related aspects from user-generated content to provide recommendations and content summaries based on automated analysis using a particular probabilistic topic model for snippet extraction and ranking (SER) is described herein. An example described is mining location-related aspects for recommending destinations, summarizing destinations, and enriching travelogues with images based on automated analysis of travelogues using a Location-Topic (LT) model for geo-snippet extraction and ranking (GSER). By mining location-related aspects from travelogues via GSER, useful information is synthesized to provide rich information for travel planning. As described herein, these techniques include automatically extracting information associated with attractions (e.g., Hawaii), and context words such as style or keywords (e.g., beach). Such extraction enables automatic destination summarization and recommendation as well as automatic travelogue enrichment. These techniques also include calculating geographic relevance scores for candidate snippets, calculating semantic relevance scores for candidate snippets, and ranking candidate snippets based on the geographic and semantic relevance scores.

This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

The Detailed Description is set forth with reference to the accompanying figures. In the figures, the left-most digit of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different figures indicates similar or identical items. A reference number with a parenthetical suffix (e.g., “104(1)” or “112(a)”) identifies a species of the feature represented by the general reference number (e.g., “104” or “112”). Use of the general reference number without a parenthetical suffix (e.g., “104” or “112”) identifies the genus or any one or more of the species.

FIG. 1 is a block diagram of an example of a framework for performing snippet extraction and ranking (SER).

FIG. 2 is a pictorial representation of a decomposition model applied to a travelogue.

FIG. 3 illustrates a comparison of location-topic (LT) model based results obtained via geo-snippet extraction and ranking (GSER) with two baseline methods.

FIG. 4 is a location similarity graph generated by a local topic decomposition model.

FIG. 5 is a matrix representation of an example of a decomposition model used to mine topic-related aspects from user-generated content comprising travelogues.

FIG. 6 is a system diagram showing illustrative logical relationships for SER.

FIG. 7 illustrates an example probabilistic decomposition model (DM).

FIG. 8 is a flow diagram showing an illustrative process of geo-snippet extraction and ranking.

FIG. 9 is a flow diagram showing an illustrative process of GSER.

FIG. 10 is a flow diagram showing additional aspects of an illustrative process of GSER.

FIG. 11 is a flow diagram showing additional aspects of an illustrative process of GSER.

FIG. 12 is a flow diagram showing additional aspects of an illustrative process of GSER.

FIG. 13 is a pictorial representation of an illustrative operating environment.

DETAILED DESCRIPTION Overview

This disclosure is directed to a framework and techniques for automated mining of topic-related aspects from user-generated content, e.g., automated mining of location-related aspects from travelogues. The described operations facilitate automatic synthesizing of recommendations from the user-generated content, summarizing the user-generated content, and enriching the user-generated content based on automated analysis of the user-generated content using a particular probabilistic topic model for snippet extraction and ranking (SER). For example, the described operations facilitate automatic synthesizing of destination recommendations, summarizing of destinations and enriching of travelogues based on automated analysis of travelogues using a Location-Topic (LT) model for geo-snippet extraction and ranking (GSER). By mining location-related aspects from travelogues via the LT model and GSER, useful information is synthesized to provide rich information for travel planning.

The described LT model facilitates automatic snippet extraction from user-generated content, such as travelogues, and ranking based on geo-snippet extraction (GSER). The tools and techniques described herein enable building a data source of geo-snippets from user-generated content by identifying locations mentioned in travelogues, segmenting a travelogue into a number of snippets, and assembling snippets that mention at least one location and that meet a length constraint to form a snippet collection. In other instances, a data source of snippets from user-generated content may be built by identifying topics mentioned in the user-generated content, segmenting the user-generated content into a number of snippets, and assembling snippets that mention at least one topic and that meet a length constraint to form a snippet collection

Acquiring knowledge from travelogues to meet the information needs of tourists planning travel is challenging, due in part to intrinsic limitations of the raw travelogue data, including noisy topics, multiple viewpoints, lack of destination recommendations, and lack of destination comparisons.

Noisy topics arise from the unstructured style of user-generated content. Travelogues and other such user-generated content typically contain a lot of noise. For example, the depictions of destinations and attractions, in which tourists planning travel are most interested, are usually intertwined with topics, such as lodging and transportation, common in various travelogues for different locations.

Multiple viewpoints come from many previous travelers' excursions to various destinations. When planning travel to a destination, one is faced with a dilemma because the viewpoint of a single travelogue may be biased, while reading a number of travelogues about the same or similar destinations may be too time consuming. Additionally, few tourists want to spend the time to create an overview summarizing travelogues related to the same or similar destinations. While some overviews may be found on the Internet, their content is typically editorial. In other words, the content is controlled by an editor, like a paid travel planner, travel agent, or marketer, and may be biased or may not accurately reflect the opinions of many previous travelers about a destination.

User-created travelogues do not typically provide destination recommendations based on local characteristics. A collection of travelogues may cover many popular travel destinations, but the depictions in a single travelogue usually only include, at most, a few destinations. Hence, for tourists who are seeking travel with a particular characteristic, (e.g., going to a beach, going to the mountains, going hiking, etc.), there is not a straightforward and effective way to obtain unbiased recommendations from the traveler's point of view.

In user-created travelogues, besides occasional explicit comparisons made by authors, little information is typically provided about similarity between destinations. However, such comparison information is often helpful for those planning travel who may be seeking suggestions about destinations similar (or dissimilar) to particular destinations with which they are familiar.

In view of the above challenges, several kinds of information processing techniques are leveraged to mine location-related aspects from travelogues to bridge the gap between raw travelogues and the information needs of tourists planning travel. Regarding the issue of noisy topics, techniques for mining location-related aspects from travelogues discover topics in travelogues and further distinguish location-related topics from other noisy topics.

Regarding the issue of multiple viewpoints, techniques for mining location-related aspects from travelogues generate a representation of locations that summarizes useful descriptions of a particular location to capture representative knowledge of the location. Such representative knowledge of the location includes, for example, characteristics from the perspective of tourism, (e.g., attractions, activities, styles).

Regarding destination recommendations, techniques for mining location-related aspects from travelogues including geo-snippet extraction (GSE) apply a relevance metric to suggest locations most relevant to tourists' travel intentions.

Regarding destination comparisons, techniques for mining location-related aspects from travelogues employ a location similarity metric to compare locations from the perspective of travel. Tools for mining location-related aspects from travelogues address noisy topics and multiple viewpoints because the location-representative knowledge mined from many location-related topics provide the input for the ranking and similarity metrics for locations based on geo-snippet extraction (GSE).

In some situations, travelogues have associated tags. Such tags may be entered by users or generated, for example, using the techniques described herein. Tags can help identify the subject matter of travelogues. However, travelogue entries may reference multiple locations that may not be captured in the tags. For example, an entry describing a road trip along the California coast between Los Angeles and San Francisco may contain information of interest for those planning travel to California generally, as well as travel to Los Angeles and/or San Francisco. However, the author may simply tag the entry “road trip.” Additionally, users sometimes tag travelogue entries with names or captions, like “Travis,” “honeymoon,” or “spring break.” Thus, even when users save or submit tags with their travelogues, the user-submitted tags may not be particularly relevant to understanding locations associated with the travelogue. Nor will the user-submitted tags necessarily be helpful for travel planning because, for example, a companion's name is personal and not likely to be associated with a location.

Reliance on user-submitted tags can be problematic for several reasons. For example, user-submitted tags may cause a lexical gap or a semantic gap, and many travelogues do not have user-submitted tags.

A lexical gap caused by user-submitted tags may be understood from the following example. When users tag travelogue entries, they often tag travelogue entries with names. For example, a travelogue about a family reunion may be tagged with the names of the family members who attended. However, the names of the attendees are not likely to be in text associated with other travelogue entries, for example, written by other users, associated with the same location or characteristics of that location. Thus a lexical, or word gap would exist for results based on the user-submitted tags.

Similarly, a semantic gap caused by user-submitted tags, although more complex, may be understood from the following example. The term “beach” may appear in user-submitted tags, but semantically “beach” is not specific enough to indicate whether the travelogue entry discusses a tropical beach, a stormy beach, a secluded beach, etc. Some user-submitted tags will include a descriptor such as “tropical,” “stormy,” “secluded,” etc. When such descriptors are included in user-submitted tags, they may be helpful to show relevant entries. However, because user-submitted tags are inconsistent, an entry discussing a beach without such a descriptor may be at least as relevant for travel planning as an entry discussing a beach with a descriptor. Thus a semantic or meaning gap would exist for results based on the user-submitted tags. Furthermore, as mentioned above, many travelogues do not have user-submitted tags. Thus, tag-based analysis of travelogues from user-submitted tags is not possible for those untagged travelogues.

In various implementations, geo-snippet extraction and ranking acts as an automatic tagging application to overcome the lexical and semantic gaps or dearth of user-submitted tags. In at least one embodiment, even when user-submitted tags are available, such tags are disregarded to obviate the lexical and semantic gaps that user-submitted tags introduce.

A system for mining topic-related aspects from user-generated content including snippet extraction and ranking (SER) is set forth first below. The system described below constitutes but one example and is not intended to limit application of the techniques to any one particular architecture. Other systems may be used without departing from the spirit and scope of the claimed subject matter. Additional sections describe instances of various techniques, examples of implementations, and illustrative embodiments. These sections describe ways in which travel planning may be enhanced. For example, destinations may be mined from user-generated travelogues for travel planning enrichment via enhanced results obtained using geo-snippet extraction and ranking (GSER). In various implementations parts of the knowledge mining operations presented may occur offline, online, before activation of applications that use the mined knowledge, or in real time. An example of an environment in which these and other techniques may be enabled is also set forth.

Example Framework

FIG. 1, illustrates an example of a framework for mining topic-related aspects from user-generated content, e.g., mining location-related aspects from user-generated travelogues. FIG. 1 also illustrates that knowledge learned from the location-related aspects, including geo-snippets extracted from user-generated travelogues, may be used in any of multiple applications. According to framework 100, knowledge mining operations 102 are performed to extract location-related aspects from travelogues 104.

In the example illustrated, knowledge mining operations 102 include location extraction, 102(A) and context word mining 102(B). In some implementations other knowledge mining operations such as travelogue modeling 102(c) may be included. The knowledge mining operations 102 result in location-representative knowledge 106 including extracted geo-snippets 108. When a request or query 110 is for a location coupled with a context word such as a style word or keyword, relevant results may be obtained based on the location and associated context. Location-representative knowledge 106 including extracted geo-snippets 108 supports various applications including providing ranked geo-snippets 112 responsive to a request or query 110. In another example of a supported application, representative snippets, including geo-snippets, can be extracted to describe a location's characteristics and can be linked to the source travelogues for detailed context. As a result, travelogues and photos may be automatically combined to characterize locations with both textual and visual descriptions, covering comprehensive aspects, which are informative for travel planners. In some implementations one or more of the various applications may be executed as part of knowledge mining 102.

Location extraction 102(A) is performed to extract locations mentioned in the text of a travelogue 104. Context word mining 102(B) is performed to mine accompanying context, e.g., style or keywords from the text of a travelogue 104 at 102(B). In some implementations, travelogue modeling 102(c) trains a Location-Topic (LT) model on locations extracted from travelogues 104 to learn local and global topics, as well as to obtain geo-snippets from the local topic space. A topic space is a multi-dimensional geometric space, in which each dimension represents a single semantic topic.

Location-representative knowledge 106 may include, for example, locations (e.g., Hawaii, Poipu Beach, San Francisco, etc.), local topics (e.g., sunset, beach, lava, bridge, etc.), and global topics (e.g., hotel, airport, photo, etc.).

In one example, a snippet collection containing a collection of geo-snippets 108 is built from travelogues in several steps. In at least one implementation the steps include 1) identifying and extracting locations mentioned in the travelogues, 2) segmenting a travelogue into a number of geo-snippets, and 3) assembling the snippet collection to include snippets that each mention at least one location and that each meet a configurable length constraint (i.e., a minimum and/or maximum numbers of words). In various implementations a geo-snippet is configured for a fixed granularity level of text, such as a number of words on either side of an identified location and/or context word, a sentence containing the location and/or context word, several consecutive sentences, or a paragraph containing the location and context word.

In various implementations, a geo-snippet 108 is represented by locations and words within the snippet as well as a quality score determined based on the length of the snippet.

The quality score indicates the appropriateness of the snippet such that snippets with low quality scores are unacceptably long or unacceptably short. In at least one instance acceptable length is dynamically configurable. Moreover, the thresholds for acceptable length need not be symmetrical. In other words, a threshold under which a snippet would be treated as too short may be a smaller number of units from an ideal range as compared to a threshold under which a snippet would be treated as too long, or the converse, e.g., (short: 7), (long: 10), (short: 10), (long: 9).

The geo-snippet s illustrated by 108 is represented as a triple of (

_(s), W_(s), q_(s)), where

_(s) represents the set of locations mentioned in the geo-snippet, W_(s) represents the set of words (excluding the locations) and q_(s) represents the quality score of snippet s.

In an example of one scenario of geo-snippet extraction and ranking (GSER), the LT model automatically provides support, responsive to a query or request 110, for operations to automatically identify and extract geo-snippets 108, which are relevant to the query 110, from travelogues. Steps to automatically identify, extract, and rank geo-snippets 108 include: 1) receiving a location+context term query 110, 2) identifying a candidate snippet, in some cases from an existing snippet collection 3) calculating a geographic relevance score for a candidate snippet, 4) calculating a semantic relevance score for the candidate snippet, and 5) ranking candidate snippets based on a combination of the geographic relevance score and the semantic relevance score.

Ranked geo-snippets 112 are determined based on a combination of a geographic relevance score and a semantic relevance score relative to the request 110. The ranking is discussed in more detail with regard to FIG. 12, below.

FIG. 2 illustrates decomposition, at 200, of three example geo-snippets 108 of a travelogue 104(1) from travelogues 104. Although FIG. 2 shows geo-snippets 108(1), 108(2), and 108(3) extracted from a single travelogue, in several implementations geo-snippets are extracted from many travelogues and ranked using geo-snippet extraction (GSER) techniques in order to leverage the richness of information available from multiple sources. Such GSER techniques addresses information from a single travelogue possibly being noisy or biased because numerous travelogues as a whole can reflect people's overall preference and understanding of travel resources and can serve as a reliable knowledge source.

As shown in FIG. 2, a travelogue may contain a variety of topics. In the illustrated example, local topics extracted from travelogue 104(1) are shown at 202, global topics extracted from travelogue 104(1) are shown at 204, and locations from travelogue 104(1) are shown at 206. In the illustrated example, locations are extracted. In other examples, locations at 206 may be learned based on local topics 202.

The Location-Topic (LT) model enables discovery of topics from travelogues and virtually simultaneous representation of locations with appropriate topics via geo-snippet extraction (GSE). As discussed above, discovered topics include two types of topics. Local topics 202 characterize locations from the perspective of travel (e.g., sunset, cruise, coastline, etc.). Global topics 204 do not particularly characterize locations but rather extensively co-occur with various locations in travelogues such as hotel, airport, photo, etc. Local topics may correspond to context words including style or keywords in various implementations.

Implementations of the tools for mining location-related aspects from travelogues and geo-snippet extraction (GSE) include a probabilistic topic model, termed a Location-Topic (LT) model, to discover topics from travelogues and virtually simultaneously represent locations with corresponding appropriate topics. The LT model defines two types of topics. One type of topic includes local topics, which characterize specific locations from the perspective of travel (e.g., sunset, cruise, coastline, etc.). Another type of topic includes global topics, which do not particularly characterize certain locations but rather extensively co-occur with reference to various locations in travelogues (e.g., hotel, airport, etc.).

Travelogues are decomposed into local and global topics based on the Location-Topic (LT) model that extracts location-representative knowledge including geo-snippets from local topics, while filtering out other semantics captured by global topics. Based on the LT model, a particular location may be represented as a mixture of local topics mined from a travelogue collection. This facilitates automatically summarizing multiple view-points of a location. Moreover, based on a learned location representation in a local topic space of the LT model, quantitative measurement of both the relevance of a location to a given travel idea and similarity between locations is possible.

With requests for a location, relevant results to be mined may be determined based on an intersection of the location itself using a Location-Topic (LT) model. With requests for characteristics of locations, e.g., surf, tropical, ocean, etc., relevant results to be mined may be determined based on an intersection of the characteristics and associated locations using the LT model. With requests for a location coupled with a context word such as a style word or keyword, e.g., Hawaii+beach, Las Vegas+casino, Pacific Coast+hiking, Mountain+skiing, etc., relevant results to be mined may be determined based on an intersection of the location and associated context using the LT model. Destinations may be recommended, in terms of either similarity to a particular destination such as Miami, Honolulu, Aspen, Whistler, etc. and/or relevance to a given travel subject such as beach, diving, mountains, skiing, hiking, etc. As used herein such a travel subject may represent a location or a context in the context of a query such as request 110 based on the remainder of the query.

Often the first question for a tourist seeking to plan travel is “where should I go?” Meanwhile, the tourist typically has some preferences regarding travel destinations, which are usually expressed in terms of two criteria, similarity and intention. The first criterion, similarity, represents a desire that the new travel destination be similar to a given location, e.g., “I enjoyed the trip to Honolulu last year. Is there another destination with similar style?” The second criterion, intention, represents a desire that the new travel destination be relevant to a given travel intention, e.g., “I plan to go hiking next month. Could you recommend some good hiking destinations?”

To obtain a similarity-oriented recommendation in accordance with the similarity criterion, given a set of candidate destinations and a query location (e.g., “Honolulu”), each destination is determined to have a similarity to the query location in the local topic space. Moreover, whatever the given query, every destination has an intrinsic popularity which is accounted for by the destination recommendation application represented by 306. The destination recommendation application, represented by 306, computes rank scores for recommendations in a way that controls the influence of the intrinsic popularity in ranking. The intrinsic popularity is approximated by how often a destination is described in travelogues. As new travelogue entries are collected from the Web, intrinsic popularity is kept updated to reflect travel trends.

To obtain a relevance-oriented recommendation in accordance with the intention criterion, given a travel intention described by a term (e.g., “hiking”), destinations are ranked in terms of relevance to the query. Travel intention contains more semantics than a single term. Thus, in various implementations, to provide a comprehensive representation to the travel ideal, the single term in the local topic space is expanded as a distribution over the local topics. In this way, the relevance of each location to the query is automatically measured, for example, using Kullback-Leibler (KL)-divergence. This query expansion strategy supports more complex travel intentions, and enables operation on multiword or natural language queries in several implementations.

In several embodiments, an overview of a destination is obtained by automatically summarizing its representative aspects. In at least one implementation, textual tags are automatically generated to summarize a destination's representative aspects. In several implementations representative snippets are also offered as further descriptions to verify and interpret the relation between a tag and the destination. In such implementations, rank scores of geo-snippets may be used in order to return appropriately relevant snippets.

Once a potential destination has been determined, a travel planner may desire more details about the destination. For example, “What are the most representative things about San Francisco?” The request may include “Can you tell me in a few words or sentences?” In some implementations, such requests may represent additional criteria to the similarity and intention criteria discussed above. In at least one implementation, to summarize representative aspects of a destination, the LT model generates representative tags and via geo-snippet extraction, identifies related snippets for each tag to describe and interpret relationships between a tag and the corresponding destination.

Representative tags may be generated using several approaches. In comparison to the LT model, term frequency (TF) and term frequency-inverse document frequency (TF-IDF), are less accurate and produce tags including noise due to terms commonly co-occurring with regard to various locations. TF generates a pseudo document for each location by concatenating all travelogue paragraphs in which the location appears, and then ranking the terms in decreasing frequency in the pseudo document. TF-IDF goes further by multiplying each term's frequency with the inverse document frequency to penalize common terms. TF and TF-IDF are mentioned as baseline methods in comparison to the LT model described herein.

TABLE 1 Destination Top 10 representative tags Anchorage bear, moose, alaskan, glacier, fish, cruise, salmon, wildlife, trail, mountain Boston fenway, whale, historic, sox, cape, england, red, history, revere, church Chicago michigan, institute, field, lake, museum, cta, tower, loop, windy, cub Las Vegas strip, casino, show, hotel, bellagio, gamble, fountain, venetian, mgm, slot Los Angeles hollywood, star, studio, universal, movie, boulevard, theatre, china, getty, sunset Maui island, beach, snorkel, whale, ocean, luau, volcano, dive, fish, surf New York City subway, broadway, brooklyn, zero, avenue, island, yorker, manhattan, village, greenwich Orlando disney, park, universal, resort, world, theme, studio, kingdom, magic, epcot San Francisco bay, cable, alcatraz, chinatown, wharf, bridge, prison, bart, fisherman, pier Washington D.C. museum, memorial, monument, national, metro, capitol, war, smithsonian, lincoln, president

Table 1 presents representative tags generated using geo-snippet extraction logic for ten destinations in the United States. Table 1 demonstrates that generated tags include not only attractions/landmarks (e.g., disney, alcatraz) but also styles (e.g., historic, beach), activities (e.g., gamble, dive), and typical icons of destinations (e.g., cable (cars) in San Francisco).

Summaries based on tags, including generated representative tags as discussed above may be produced in several implementations. An example in the area of multi-word requests is discussed below with regard to Table 5.

For a given location in knowledge mining operations 102, the LT model ranks the terms according to probability. Those terms with higher probabilities to serve as representative tags are selected for the location. In at least one implementation, given a selected tag, the LT model generates corresponding snippets via ranking all of the sentences in the travelogues 104 according to the query. From the set of candidate locations, the sentences in the travelogues 104, and the ranked terms, the sentence is ranked in terms of geographic relevance to a location. Correspondingly, the sentence is ranked in terms of semantic relevance to a tag. Using the above techniques each term in a sentence contributes to semantic relevance according to similarity.

Informative parts of a travelogue may be automatically identified and enhanced them with related content. Such enhancement improves browsing and understanding of travelogues and enriches the consumption experience associated with travel planning. In several implementations enhancing content is selected based on ranked geo-snippets 112, as discussed above.

In addition to a recommendation or a brief summarization, travelogues written by other tourists may be of interest to a travel planner.

Given a travelogue, a reader is usually interested in which places the author visited and in seeing pictures of the places visited. For example, “Where did Jack visit while he was in New York?” The request may include, “What does the Museum of Modern Art in New York look like?” In some implementations, such requests may represent additional criteria to those discussed above. To facilitate enriched travelogue browsing, the LT model detects a highlight of a travelogue such as by extracting a geo-snippet, and provides the highlight through an interface. In some instances the LT model may enrich the highlight with images from other sources based on geo-snippets to provide more visual descriptions.

For example, when a travelogue refers to a set of locations, the LT model treats informative depictions of locations in the set as highlights. Each term in a document has a possibility to be assigned to a location. In this way, a generated highlight of the location may be represented with a multi-dimensional term-vector. FIG. 3 shows an evaluation of a tag ranking list generated by the baselines TF and TF-IDF compared to that of an LT model based method in one implementation. In the example illustrated at FIG. 3, each of these methods are evaluated based on the Normalized Discounted Cumulative Gain at top K (NDCG@K), which is used in information retrieval to measure the accuracy of ranking results. Because no ground-truth existed previously for location-representative tags, the results illustrated at FIG. 4 rely on a ground-truth built by graduate students selecting a top ten from a merged list of the top twenty tags generated by the LT model and each of the baseline methods. Each tag was then assigned a rating based on the number of times that tag was selected to generate a ranking list of tags as a ground-truth.

As shown at FIG. 3, the LT model outperforms the TF-IDF method and the TF method, and the TF-IDF method outperforms the TF method consistently. The TF-IDF method performs better than the TF method because the TF-IDF method penalizes the commonly co-occurring noisy tags (e.g., hotel, train), while these tags are ranked at top positions by the TF method due to their high frequencies. However, the penalty mechanism of TF-IDF is too coarse to filter out all of the noisy tags. Thus, the TF-IDF method still suggests some noisy tags. By contrast, the LT model-based approach properly characterizes such noisy tags as global topics, and thus achieves higher accuracy at the top tags.

FIG. 4 shows an example of a location similarity graph of location-related aspects mined from travelogues. The similarity graph illustrated in FIG. 4 represents a set of 36 locations built for four travel intentions. The locations were selected from a source and filtered against a test data set. The four travel intentions include (1) Beaches and Sun, (2) Casinos, (3) History and Culture, and (4) Skiing. The location set included six locations for Casinos, and 10 for each of Beaches and Sun, History and Culture, and Skiing. For each pair of locations in the set, a similarity was computed as described above. The pair-wise similarities form the location similarity graph presented in FIG. 4.

To demonstrate the graph's consistency with the ground-truth similarity/dissimilarity between the four categories of locations, a visualization service, may be used to visualize a graph. In the implementation illustrated in FIG. 4, a visualization service, such as that provided by NetDraw™ software, was used to visualize a graph where similar locations tend to be positioned close to each other. Ground-truth similarity may be confirmed from third-party sources during training of the LT model.

To illustrate topics learned by the LT model, the top 10 words (i.e., the 10 words with the highest probabilities in a topic) for several example topics from Table 1 are shown in Table 2.

For example, in Table 2, local topic #23 may be understood to represent a hiking trip to Arizona. Global topic #8, placed directly below local topic #23 could correspond to the same hiking trip. However, global topic #8, as well as the other global topics represented could correspond to any of the local topics. Similarly, local topic #62 may represent a vacation in San Diego. Global topic #22, directly below local topic #62 in Table 2, could also correspond to a vacation in San Diego. However, global topic #22 may be just as applicable to the other examples of local topics presented in Table 2, including local topic #23. However, local topics #23 and #62 do not share any characteristics as the desert and seaside locations they represent are vastly different.

TABLE 2 Local #23 Local #57 Local #62 Local #66 Local #69 desert museum dive casino mountain cactus art snorkel gamble peak canyon collect fish play rocky valley gallery aquarium slot snow hot exhibit sea table high west paint boat machine feet heat work whale game lake spring sculpture reef card summit plant america swim money climb dry artist shark buffet elevate Global #8 Global #19 Global #22 Global #26 Global #37 flight great kid room rain airport best family hotel weather fly fun old bed wind plane beautiful children inn cold check enjoy fun breakfast temperature bag wonderful love bathroom storm air love young night sun travel amaze age door warm land tip son comfort degree seat definite adult book cloud

As Table 2 demonstrates, local topics characterize tourism styles and corresponding locations, including styles related to nature like desert (local #23), and seaside (local #62), as well as cultural styles like museum (local #57); whereas global topics correspond to common themes of travel, such as transportation (global #8), accommodation (global #26), and opinion (global #19), which tend to appear in travelogues related to almost any destination.

In the example illustrated in FIG. 4, different shapes represent different location categories. Specifically, locations corresponding to (1) Beaches and Sun are represented with circles; locations corresponding to (2) Casinos are represented with squares; locations corresponding to (3) History and Culture are represented with triangles; and locations corresponding to (4) Skiing are represented with diamonds. FIG. 4 shows how different categories of locations are visibly differentiated and clustered by the similarity metric of the LT model.

As shown by the example location similarity graph, tools and techniques for mining location-related aspects from travelogues provide a benefit from other methods including uncluttered data. For example, although a location similarity graph generated using a term frequency-inverse document frequency (TF-IDF) method may show differentiation, under the TF-IDF metric clustering is not complete. When generating a TF-IDF based location similarity graph for comparison with that of the tools for mining location-related aspects from travelogues as described with regard to FIG. 4, the TF-IDF based graph (not shown) is implemented by forming a pseudo document for each location, concatenating all the travelogues that refer to the location, and then measuring the similarity between two locations using TF-IDF cosine distance.

The approach described for comparison to such a TF-IDF based graph demonstrates one of the advantages of the LT model, e.g., preserving the information that characterizes and differentiates locations when projecting travelogue data into a low-dimensional topic space. Moreover, greatly reduced edge count is obtained by the LT model. As shown in FIG. 4, the LT model based graph produces about 330 edges, as compared to a corresponding TF-IDF based graph (not shown), which produces about 1256 edges. The edge count provides an indication of the number of computations performed. Thus, the edge count decrease of about 70% indicates that computational time is significantly reduced by the LT model.

The LT model leverages query expansion over local topics. Using the four location categories discussed above ((1) Beaches and Sun, (2) Casinos, (3) History and Culture, (4) Skiing) and the term “family,” five queries were served as individual requests to the LT model to obtain a relevance-oriented recommendation. Table 3, below shows ranking results obtained by the LT model and a baseline method employing TF-IDF. The baseline method ranks locations for a query as a decreasing number of travelogues that contain both a location and a query term. Ground-truth represents a known true quantity for training.

The resulting location ranking lists of the two methods are evaluated by the number of locations, within the top K locations, matching the ground-truth locations. As shown by the experimental results in Table 3, the locations recommended via the LT model correspond with more of the ground-truth location categories than the baseline method. The difference is particularly evident for the requests “beach” and “casino.”

TABLE 3 #Matches at top K Query #Groundtruth Method K = 5 K = 10 K = 15 K = 20 beach 35 baseline 1 4 7 9 LT model 4 9 12 13 casino 6 baseline 2 2 3 3 LT model 4 5 5 5 family 38 baseline 4 6 8 11 LT model 3 5 8 11 history 12 baseline 4 6 8 8 LT model 5 8 9 10 skiing 20 baseline 2 4 4 6 LT model 3 5 10 12

However, the baseline method corresponds with more of the ground-truth locations for the request “family” at the top 5 and top 10 results. This provides evidence that the LT model's method for measuring a location's relevance to a query term occurs in local topic space rather than in term space. The LT model expands the query with similar terms to enable partial matches and improve the relevance measurement for queries that are well captured by local topics (e.g., beach, casino). On the other hand, for query terms mainly captured by global topics (e.g., family, which is a top word of the global topic #22 shown in Table 2), the query expansion employed by the LT model is less effective due to a low confidence of that query term's distribution over local topics.

Table 4 lists some example destinations recommended by the LT model from the experimental results of Table 3. Correspondence between the results of the LT model and the ground-truth is demonstrated by the locations presented in italics.

TABLE 4 Query Top 10 recommended destinations beach Myrtle Beach, Maui, Miami, Santa Monica, Destin, Hilton Head Island, Virginia Beach, Daytona Beach, Key West, San Diego casino Las Vegas, Atlantic City, Lake Tahoe, Biloxi, Reno, Deadwood, New Orleans, Detroit, Tunica, New York City family Orlando, Las Vegas, New York City, Washington D.C., New Orleans, Charleston, Myrtle Beach, Chicago, San Francisco, Walt Disney World history New Orleans, Charleston, Williamsburg, Washington D.C., New York City, Chicago, Las Vegas, Philadelphia, San Francisco, San Antonio skiing Lake Tahoe, Park City, South Lake Tahoe, Jackson Hole, Vail, Breckenridge, Winter Park, Salt Lake City, Beaver Creek, Steamboat Springs

Table 4 reveals a further strength of the tools and techniques for mining location-related aspects from travelogues. Specifically, while the destinations represented by the ground-truth are limited to cities, the LT model captures destinations based on attraction names (e.g., Walt Disney World) and regional names or nicknames (e.g., South Lake Tahoe).

Although single word queries were used for uniformity in the example illustrated in Table 3 and Table 4, the tools for mining location-related aspects from travelogues operate on multi-word requests as well. In various embodiments, a “location+context term” query may be automatically generated from extracted representative tags.

A “location+context term” query is an example of a multi-word request that may be received or generated.

Table 5 demonstrates examples of the top three snippets extracted using GSE based on three “location+context term” queries, 1) Alaska+wildlife, 2) Las Vegas+casino, and 3) Waikiki Beach+beach.

In Table 5, geo-snippet extraction and ranking produces useful travelogue snippets based on “location+context term” queries as demonstrated by the locations presented in bold and the context words relevant to the query term shown in italics in the extracted snippets. The snippets provide amalgamated viewpoints from several travelogues that are useful to those planning travel to the stated locations. Moreover, the snippets of Table 5 represent the top ranked three candidate snippets.

TABLE 5 Query Top three snippets Alaska + This time, the bus stopped at the Alaska Wildlife Conservation wildlife Center, where we saw musk oxen, bison, brownbears, black bears, eagles, owls, foxes, reindeers, and a few other animals. Along the way we stopped at the Alaska Wildlife Recreation Center to check on the musk ox, Moose, Brown and Black Bears, and many other Arctic animals. The rest of my week in Alaska was filled with more wildlife sightings, including numerous brownbears and cubs, caribou, and a rare black wolf in Denali; and a moose with a calf and several wild trumpeter swans. Las Vegas + With the ringing of slot machines it finally hit me, I was rolling casino into a Las Vegas casino! Sitting at the first row of slot machines we experienced one of the most amazing aspects of common casino etiquette. Being more inclined to stick my hard earned cash in a money market fund than a slot machine, Las Vegas and casinos have never held much allure for me, but I have to admit that the Las Vegas Strip with all the big casinos seemed pretty glamorous and exciting. We have played in the Casinos of Las Vegas! They want you to stay in the Casinos so they have waitresses coming around giving you free drinks and all you have to do is tip her $1 or $2 dollars and she just keeps coming back. Waikiki Beach + The famous Waikiki Beach is very beautiful and is packed with beach swimmers from the early hours, it has lovely clean sand but the beach is getting smaller by the year and is already at the base of a couple of hotels! The dreaded global warming! Since Waikiki Beach faces southwest, we were able to enjoy an extraordinary sunset right from the beach in front of our hotel, then we retired to our room where we spent the evening sitting out on the lanai, having some cocktails, and listening to the surf. If you are near the Waikiki Beach area, enjoy the day at thebeach, relax, and stay for the beautiful sunset.

Given a query, (location l_(q), keyword w_(q)), to recommend the most relevant and informative snippets, snippets are ranked in terms of their (1) geographic relevance to the location l_(q), and/or (2) the semantic relevance of the keyword represented by w_(q). Relevance scores are addressed in further detail below with regard to FIG. 12.

Example Operation

Probabilistic topic models are a type of dimension reduction approach useful in information retrieval (IR) that may be understood in terms of matrix factorization approaches. Although the computations of topic models are more complex than matrix factorization approaches, matrix factorization approaches may facilitate understanding of the probabilistic topic model. Additionally, matrix factorization approaches may be generalized to unseen data, e.g., query data. The “topic” of topic models is equivalent to the base vector in matrix factorization approaches. However, compared to matrix factorization approaches, topic models provide better insight to real world queries. Nevertheless, the analogousness of matrix factorizations and topic models enables better understanding of file decomposition implementation by various approaches and heuristics.

Existing probabilistic topic models, such as latent Dirichlet allocation (LDA), have been successfully applied to a variety of text mining tasks. The existing probabilistic models are not applicable in the vertical space of travelogues because the existing models do not address the limitations of travelogue data. Although documents under known probabilistic models are represented as mixtures of discovered latent topics, the entities appearing in the documents (e.g., locations mentioned in travelogues) either lack representation in the topic space, or are represented as mixtures of all topics, rather than the topics appropriate to characterize these entities. Considering the common topics in travelogues, the representation of locations using all topics would be contaminated by noise and thus unreliable for further relevance and similarity metrics.

As described above with reference to FIG. 1, knowledge mining operations 102 are performed to obtain location-representative knowledge 106 from user-generated travelogues 104. As discussed above, location extraction 102(A) decomposes travelogues 104 to extract locations and context word mining 102(B) mines context words from travelogues. Additionally, in some instances, travelogue modeling 102(c) trains a Location-Topic (LT) model on locations extracted from travelogues 104 to learn local and global topics, as well as to obtain representations of locations in the local topic space including geo-snippets 108.

FIG. 5 illustrates a matrix representation of decomposition of user-generated content such as a travelogue. Such decomposition is completed as part of knowledge mining operations 102 in various implementations. By decomposing the file, location-representative knowledge is obtained from terms in the local topics. In at least one implementation terms from global topics are discarded; however the terms of the local topic and representing locations can be compactly represented and efficiently indexed.

Travelogues 104 are represented by a term-document matrix at 702, where the j^(th) column encodes the j^(th) document's distribution over terms. Based on this representation, a given term-document matrix 502 is decomposed into multiple matrices. A file, e.g., travelogue, is represented by local topics illustrated in the (I) box 504 and global topics illustrated in the (II) box 506. The matrices addressing local topics 504 include Term-LocalTopic matrix 508, LocalTopic-Location matrix 510, and Location-Document matrix 512. The matrices addressing global topics 506 include Term-GlobalTopic matrix 514 and GlobalTopic-Document matrix 516.

The term-document matrix 502 is decomposed into Term-LocalTopic 508, Term-GlobalTopic matrix 514, matrix GlobalTopic-Document matrix 516, and Location-Document matrix 512. GlobalTopic-Document matrix 516 represents a common topic model, whereas Location-Document matrix 512 is specific to the LT model. A graphical illustration of the LT model is presented in FIG. 7, described below.

In at least one embodiment, travelogues 104 are represented by a term-document matrix 502 that is decomposed as represented by FIG. 5 in accordance with the following equation, Equation 1.

$\begin{matrix} {{p\left( {w❘d} \right)} = {{\lambda \times {\sum\limits_{l = 1}^{L}{\sum\limits_{z = 1}^{T^{loc}}{{p\left( {w❘z} \right)}{p\left( {z❘l} \right)}{p\left( {l❘d} \right)}}}}} + {\left( {1 - \lambda} \right) \times {\sum\limits_{z^{\prime} = 1}^{T^{gl}}{{p\left( {w❘z^{\prime}} \right)}{p\left( {z^{\prime}❘d} \right)}}}}}} & {{Equation}\mspace{14mu}(1)} \end{matrix}$

In Equation 1, p(w|d) indicates that each word w in document d has an associated probability p. Between 504 and 506, the distribution is binary—each word w in document d either contributes to local topics z, 504, or global topics z′, 506. Local topic z has a probability of representing one or more locations l. When explicitly represented, a location l may be extracted from local topics z. Location l may also be learned from local topic z. The sum of extracted and learned locations l represent document d. Each location l has a probability of representing document d.

In some instances observed information such as existing location labels, (e.g., user-submitted tags, generated tags, etc.), associated with a travelogue may be employed to build the Location-Document matrix 512. However, due to such document-level labels typically being too coarse to cover all the described locations in travelogues, or even incorrectly marked, extracting locations from travelogue text may be preferred. There are several methods for location extraction, e.g., looking up a gazetteer, or applying a Web service like Yahoo Placemaker™. In several implementations an extractor based on a gazetteer and location disambiguation algorithms considering geographic hierarchy and textual context of locations are used to unambiguously identify location names even when the location names may also have common word meanings that are not location associated or when the location name may be associated with more than one location.

For example, a word or phrase may be identified as either a location name or a common word. Differentiating between location names and common words may be referred to as location detection. Location detection can use prior knowledge of the probability of a word being a location name or else being a common word that is not location associated. In some instances such probabilities may be collected from a corpus of many pieces of user-generated content, documents or articles.

As another example, a location name that may be associated with several geographic locations may be disambiguated to only the intended location instance. This disambiguation may be referred to as location recognition. Location recognition may predict the intended location instance of a location name using hints from other location names occurring within the same piece of user-generated content. In at least one implementation, results from location recognition may be used to validate results from location detection. For example, if several location names are found near a word W within a travelogue, it is more likely that the word W is a location name than a common word.

In some implementations, the operations of location detection and location recognition may be coupled with one another to extract or identify location names from textual content.

The extracted locations can provide an indication of locations described in a travelogue. However, such extracted locations are not sufficient to complete the Location-Document matrix 512 due to an observed gap between the extracted locations and the locations actually described in the travelogue. For instance, a series of locations may be mentioned in a trip summary, without any description or with minimal description in the text of the travelogue. The tools and techniques for mining location-related aspects from travelogues and geo-snippet extraction and ranking leverages how travelogue authors typically concentrate descriptions of some locations in consecutive sentences. That is, consecutive words tend to correspond to the same location. Considering these observations, all of the words in a segment (e.g., a document, paragraph, sentence, or sliding window) may be treated as sharing a multinomial distribution over locations, which is affected by a Dirichlet prior derived from the extracted locations in the segment. In this way, the Location-Document matrix 512 is kept variable to better model the data, while also benefiting from the extracted locations as priors.

As shown in FIG. 5, for the decomposition of probability p(w|d) in Equation 1, each word in a document is assumed to be “written” in either of the following two ways: (1) selecting a location, a local topic, and a term in sequence; (2) selecting a global topic and a term in sequence. A binary decision is made to select between (1) and (2) for each word. Once decomposed as above, the Location Topic (LT) model preserves a travelogue collection's location-representative knowledge in LocalTopic-Location matrix 510, and topics in Term-LocalTopic matrix 508 and Term-GlobalTopic matrix 514.

FIG. 6 shows a system 600 that serves mined knowledge. Data is obtained by mining topic-related aspects from user-generated content such as travelogues, and may be provided to the user through various applications. Such a technique optimizes location related applications such as providing destination summaries and providing destination recommendation by automating analysis of user-generated content such as travelogues and blogs.

System 600 includes a content service 602 that provides search results through a viewer 604, oftentimes in response to a request 110. In some instances the request 110 is structured to include at least two terms 606, a location term 606(1) and a context term 606(2). In other instances the request 110 is unstructured and terms 606 are mined to obtain location term 606(1) and context term 606(2) from request 110. Content service 602 may be a network-based service such as an Internet site, also referred to as a website. The website and its servers might have access to other resources of the Internet and World-Wide-Web, such as various content and databases.

In at least one implementation, viewer 604 is an Internet browser that operates on a personal computer or other device having access to a network such as the Internet. Various browsers are available, such as Microsoft Corporation's Internet Explorer™. Internet or web content may also be viewed using other viewer technologies such as viewers used in various types of mobile devices, or using viewer components in different types of application programs and software-implemented devices.

In the described embodiment the various devices, servers, and resources operate in a networked environment in which they can communicate with each other. For example, the different components are connected for intercommunication using the Internet. However, various other private and public networks might be utilized for data communications between entities of system 600.

In system 600, content service 602, which is coupled to viewer 604, serves content responsive to a request 110. Content service 602 utilizes one or more of location learning logic 608, Location-Topic (LT) model 610, selection logic 612, web server logic 614, and snippet extraction logic 616 to obtain content from travelogue collection 618, general content 620 and snippet collection 622 In some instances system 600 includes images 624.

Location learning logic 608 decomposes a file, e.g., a travelogue or a blog into multiple components, one for local topics from which location-representative knowledge is obtained, and another for global topics that do not pertain to location and may be filtered out.

Location learning logic 608 represents functionality for decomposing files into local and global topics or components. Although the described embodiment discusses mining location-related aspects from travelogues, the techniques described herein are also useful for, among other things, determining search results for web pages, multimedia files, etc.

In various embodiments, the request 110 is used by location learning logic 608 and can represent a single request or a plurality of requests. Furthermore, request 110 may come from multiple sources. For example, a request 110 may come from a location mined from the Internet, user-generated content such as a document written by a user, and/or a web page visited by a user 624

The LT model 610 is shown as a component of content service 602. In various embodiments, the LT model 610 operates in concert with one or more of location learning logic 608, selection logic 612, web server logic 614, and snippet extraction logic 616. Alternately or additionally, LT model 610 may operate independent of the other components illustrated in content service 602.

LT model 610 facilitates discovering topics from travelogues and virtually simultaneously representing locations with appropriate topics. As discussed above, discovered topics include two types of topics, local topics which characterize locations from the perspective of travel (e.g., sunset, cruise, coastline), and global topics (e.g., hotel, airport) which do not particularly characterize locations but rather extensively co-occur with various locations in travelogues.

Based on the LT model 610, decomposing travelogues into local and global topics facilitates automatically obtaining location-representative knowledge from local topics, while other semantics captured by global topics are filtered out. The LT model 610 also enables representing a location as a mixture of local topics mined from a travelogue collection, which facilitates automatically summarizing multiple view-points of a location. Moreover, based on learned location representation in local topic space of the LT model 610, quantitative measurement of both the relevance of a location to a given travel idea and similarity between locations is possible.

For example, when request 110 is a request for a location, relevant results to be mined may be determined based on an intersection of the location itself using LT model 610. With requests for characteristics of locations, (e.g., beach, tropical, ocean, etc.), relevant results to be mined may be determined based on an intersection of the characteristics and associated locations using LT model 610.

Selection logic 612 selects content based on the determination of location learning logic 608 corresponding to request 110. In at least one embodiment, selection is made from travelogue collection 618.

Web server logic 614, in some instances, responds to various requests such as requests from viewer 604 and/or request 110 by providing appropriate content. In various embodiments, the request 110 is used by web server logic 614 rather than, or in addition to, location learning logic 608. Microsoft's IIS (Internet Information Services) is an example of widely used software that might be used in this example to implement web server logic 614. For example, web server logic 614 receives a request 110, and accesses various types of content, including general content 620, travelogue content from a travelogue collection 618, and snippets such as extracted geo-snippets 108 from a snippet collection 622624. Depending on the nature of the service implemented by content service 602, various combinations and types of content may be accessed, including text, graphics, pictures, video, audio, etc. The exact nature of the content is determined by the objectives of the service. In various implementations selection logic 612 operates with web server logic 614 to facilitate selection from snippet collection 622, travelogue collection 618, general content 620, or other sources of content. Such selection may be accomplished by searching for records referring to a location corresponding to the request, ranked based on the local topics or other location mining techniques as described herein.

In this context, a request 110 might comprise a location term 606(1) and/or a context term 606(2) and/or a characteristic of locations (not shown), and may, in some instances, be supplied by a user of content service 602. General content 620 might comprise documents, multimedia files and other types of content that are provided to viewer 604 via content service 602. For example, if content service 602 represents a search service, content service 602 may include various other features in addition to searching, such as discussion, chat, and news features.

Content service 602 may generate a response to request 110 based on data retrieved from one or more third-party sources. FIG. 8 shows a collection of travelogue content 618 as an example of such sources. When serving content to viewer 604, content service 602 may retrieve one or more records from travelogues 104 which may be embodied as a candidate set or subset of travelogue collection 618, or in some instances a compound representation of travelogues 104 having undergone dimension reduction. In various embodiments a collection of snippets are included in travelogue content 618 and content service 602 employs snippet extraction logic 616 to extract snippets, such as geo-snippets 108, from one or more of a snippet collection 622, travelogue collection 618, and/or general content 620.

For example, responsive to location+context terms 606 in request 110, snippet extraction logic 616, sometimes in concert with the LT model 610 automatically identifies and extracts geo-snippets 108, which are relevant to the query 110. Geo-snippets 108 may be extracted from travelogues 104, a travelogue collection 618, or from snippet collection 622. Once a candidate snippet is identified responsive to request 110, snippet extraction logic 616 calculates geographic relevance 626 and semantic relevance 628 for the candidate snippet. Snippet extraction logic 616 ranks the candidate snippets relative to the request 110 based on a combination of geographic and semantic relevance scores.

FIG. 7 presents a graphical representation of a mined topic probabilistic decomposition model 700, e.g., the Location-Topic (LT) probabilistic decomposition model introduced above with reference to 500 of FIG. 5 and implemented as Location-Topic model 610, shown in FIG. 6.

In the LT model 610, each location l is represented by ψ_(l), a multinomial distribution over local topics, with symmetric Dirichlet prior β; while each document d is associated with a multinomial distribution over global topics, denoted by θ_(d), with symmetric Dirichlet prior α.

To obtain a similarity-oriented recommendation in accordance with the similarity criterion, given a set of candidate destinations

and a query location l_(q) (e.g., “Honolulu”), each destination lε

is determined to have a similarity to l_(q) in the local topic space. The similarity is defined as LocSim. Moreover, whatever the given query, every destination has an intrinsic popularity. Intrinsic popularity is approximated by how often a destination is described in travelogues. As the newest travelogues are collected from the Web, intrinsic popularity is kept updated to reflect travel trends.

A destination recommendation application may compute a rank score for recommendation as Score_(l) _(q) (l)=log LocSim(l_(q), l)+λ log Pop(l), lε

, λ≧0, where the coefficient λ controls the influence of the intrinsic popularity Pop(l) in ranking. In at least one implementation, (l) is defined as the occurrence frequency of the location l in the whole travelogue corpus C, as

$(l) = {\frac{\#\left( {l\mspace{14mu}{appears}\mspace{14mu}{in}\mspace{14mu} C} \right)}{\sum\limits_{l^{\prime} \in \mathcal{L}}{\#\left( {l^{\prime}\mspace{14mu}{appears}\mspace{14mu}{in}\mspace{14mu} C} \right)}}.}$

To obtain a relevance-oriented recommendation in accordance with the intention criterion, given a travel intention described by a term w_(q) (e.g., “hiking”), the destination recommendation application ranks destinations in terms of relevance to the query. Travel intention contains more semantics than a single term such as w_(q). Thus, in various implementations, to provide a comprehensive representation to the travel ideal, the destination recommendation application expands w_(q) in the local topic space as δ_(w) _(q) (a distribution over the local topics). In this way, the relevance of each location l to the query w_(q) is automatically measured using Kullback-Leibler (KL)-divergence. The score for ranking is computed as Score_(w) _(q) (l)=D_(KL)(δ_(w) _(q) ∥ψ₁)+λ log Pop(l), lε

, λ≧0, where ψ_(l) is location l's distribution over local topics. The above query expansion strategy supports more complex travel intentions, and enables operation on multiword or natural language queries in several implementations.

For a given location l_(q), in knowledge mining operations 102 such as those discussed above with regard to FIG. 1, the LT model 610 ranks the terms {w=1:W} with the probability (w|l_(q)). Those terms with higher probabilities of serving as representative tags are selected for the location l. In at least one implementation, given a selected tag w_(q), the LT model 610 generates corresponding snippets via ranking all the sentences {s} in the travelogues 104 according to the query “l_(q)+w_(q)”. For example,

is treated as the set of locations extracted from the sentence s and W_(s) is treated as all the terms in s. From

, s, and W_(s) the sentence is ranked in terms of geographic relevance to a location l_(q) as Score_(l) _(q) _(,w) _(q) (s)×GeoRele_(l) _(q) (s)×SemRele_(w) _(q) (s), where GeoRele_(l) _(q) (s)=#(l_(q) appears in

)/|

|. Correspondingly, the sentence is ranked in terms of semantic relevance to a tag w_(q), SemRele_(w) _(q) (s)=Σ_(wεW) _(s) TermSim(w_(q),w) log(1+|Ws|). Using the above techniques each term in a sentence contributes to semantic relevance according to similarity w_(q).

For example, given a travelogue d, which refers to a set of locations

_(d), the LT model 610 treats informative depictions of locations in

_(d) as highlights. Each term w in d has a possibility (l|w) to be assigned to a location l. In this way, the highlight of the location/may be represented with a W-dimensional term-vector ul=u_(l,1), . . . , u_(l,W)), where u_(l,w)=#(w appears in d)×p(l|w), w=1, . . . , W. Highlight u_(l) is enriched with related images by collecting a set of images R_(l) that are geographically relevant to the location l. Each image rεR_(l) is labeled with a set of tags, T_(r). Based on the tags, each image r can also be represented as a W-dimensional vector v_(r)=(v_(r,1), . . . , v_(r,W)), where v_(r,1)=Σ_(tεT) _(r) TermSim(t, w), w=1, . . . , W.

A relevance score of r to u_(l) is computed as

${{{Score}_{ul}(r)} = {\left\langle {u_{l},v_{r}} \right\rangle \cdot \frac{1}{\log\left( {1 + {T_{r}}} \right)}}},$ rεR_(l), where

·,·

denotes an inner product, and

$\frac{1}{\log\left( {1 + {T_{r}}} \right)}$ is used to normalize images with different numbers of tags. Moreover, to diversify the resulting images, images are selected one by one. Once the k^(th) image r_(k) is chosen, u_(l) ^((k)) is iteratively updated to decay information already i expressed by the selected image, as u_(l) ^((k))={u_(l,w) ^((k−1))×exp(−τ·v_(r) _(k) _(,w))}_(w=1) ^(W), and u_(l) ⁽⁰⁾=u_(l), where τ>0 is a penalty coefficient to control the decay strength.

In at least one implementation, location learning logic 608 treats document d using a bag-of-words approach, as a set of S_(d) non-overlapping segments, (e.g., a document, paragraph, sentence, or sliding window). Each segment s is associated with (a) a bag-of-words, (b) a binomial distribution over global topics versus local topics, and (c) a multinomial distribution over a location set corresponding to segment s. The binomial distribution over global topics versus local topics π_(d), has Beta prior γ=γ^(gl), γ^(loc). The multinomial distribution ξ_(d), over segment s's corresponding location set

$\mathcal{L}_{d,s}\overset{def}{=}\left\{ l \middle| l \right.$ appears in segment s in d}, and has Dirichlet prior parameterized by χ_(d,s) defined as

$\chi_{d,s}\overset{def}{=}\left\{ {\delta_{d,s,l} = {{\mu \cdot \#}\left( l \right.}} \right.$ appears in segment s in d)}_(lε)

_(d,s) , where “#(·)” is short for “the number of times” and coefficient μ denotes the precision of the prior. In at least one implementation, each paragraph in a travelogue is treated as a raw segment, with further merging to ensure that each segment contains at least one location.

In accordance with FIG. 7, a generative process of a travelogue collection C, which consists of D documents covering L unique locations and W unique terms, is defined graphically as follows.

At 702, when z represents a global topic, for each global topic zε{1, . . . ,}, a multinomial distribution over terms, φ_(z)˜Dir(η^(gl)) is drawn, where T^(gl) is represented at 704, φ^(gl) is represented at 706, and η^(gl) is represented at 708. However, when z represents a local topic, for each local topic zε{1, . . . , ^(loc)}, a multinomial distribution over terms, φ_(z) ^(loc)˜Dir(η^(loc)) is drawn, where T^(loc) is represented at 710, φ^(loc) is represented at 712, and η^(loc) is represented at 714. T^(gl) corresponds to matrix 514 and T^(loc) corresponds to matrix 508 shown in FIG. 5.

At 716, l represents a location. For each location lε{1, . . . , L}, a multinomial distribution over local topics, ψ_(l)˜Dir(β) is drawn, where L is represented at 718, ψ_(l) is represented at 720, and β is represented at 722. ψ_(l) corresponds to matrix 510, shown in FIG. 5.

At 724, D represents an end document in a series. For each document dε{1, . . . , D}, a multinomial distribution over global topics, θ_(d)˜Dir(α) is drawn, where θ_(d) is represented at 726 and α is represented at 728. θ_(d) corresponds to matrix 516, shown in FIG. 5.

At 730, S_(d) represents a segment of a document. For each segment s of document d, a binomial distribution over global topics versus local topics, π_(d,s)˜Beta(γ), is drawn, where π_(d,s) is represented at 732 and γ is represented at 734. π_(d,s) controls the ratio of local to global topics in a document. Additionally, for each segment s of document d, a multinomial distribution over locations in s, ξ_(d,s)˜Dir(χ_(d,s)), is drawn, where ξ_(d,s) is represented at 736 and χ_(d,s) is represented at 738. ξ_(d,s) controls which location is addressed by matrix 512 shown in FIG. 5.

At 740, w represents a word from a number of words N in a document d. For each word w_(d,n) in segment s of document d, a binary switch, x_(d,n)˜Binomial(π_(d,s)), is drawn, where N_(d) is represented at 742, and x is represented at 744.

The LT model 610 uses switch variable x, 744, to control the assignment of words w, 740 as either a local topic T^(loc) 710 or a global topic T^(gl) 704.

Parameters of the LT model support a variety of applications by providing several data representations and metrics including a representation of a location, a location similarity metric, a term similarity metric, and inference.

Regarding location representation, a location l can be represented in either T^(loc)-dimensional local topic space or W-dimensional term space. For a T^(loc)-dimensional local topic space, location l is represented by ψ_(l) namely its corresponding multinomial distribution over local topics. For a W-dimensional term space, a probability distribution over terms conditioned on location l is derived from raw Gibbs samples rather than the model parameters, by counting the words assigned to location l, as p(w|l)∞n_(l) ^(w), w=1, . . . , W where n_(l) ^(w) is the number of times term w is assigned to location l.

Regarding location similarity metrics, from the perspective of tourism, the symmetric similarity between two locations l₁ and l₂ is measured based on corresponding multinomial distributions over local topics ψ_(l) ₁ and ψ_(l) ₂ as LocSim(l₁,l₂)=exp{−τD_(JS)(ψ_(l) ₁ ∥ψ_(l) ₂ )}, where D_(JS)(·∥·) denotes a Jensen-Shannon (JS) divergence defined as

${{D_{JS}\left( p||q \right)} = {{\frac{1}{2}{D_{KL}\left( p||\frac{p + q}{2} \right)}} + {\frac{1}{2}{D_{KL}\left( q||\frac{p + q}{2} \right)}}}},$ while D_(KL)(·∥·) denotes the Kullback-Leibler (KL) divergence; coefficient τ>0 is used to normalize different numbers of local topics.

Regarding term representation, each term w in the vocabulary of the travelogue collection can be expanded to a probability distribution over the learned T^(loc) local topics, denoted by δ_(w) shown by {δ_(w)={p(z|w)}_(z=1) ^(T) ^(loc) , p(z|w)∞p(w|z)p(z)∞φ_(z,w) ^(loc)η_(z) ^(loc), where η_(z) ^(loc) is the total number of words assigned to local topic z.

Regarding term similarity metrics, from the perspective of tourism, the symmetric similarity between two terms w₁ and w₂ is measured based on corresponding probability distributions over local topics as TermSim(w₁, w₂)=exp{(−τD_(JS)(δ_(w) ₁ ∥δ_(w) ₂ )}.

Regarding inference, given the learned parameters, hidden variables can be inferred for unseen travelogues. A Gibbs sampler is run on the unseen document d using updating formulas. In at least one embodiment the following updating formulas are used.

${{p\left( {{x_{i} = {gl}},{z_{i} = {\left. z \middle| w_{i} \right. = w}},x_{\backslash i},{z_{\backslash i};\Omega}} \right)} \propto {\varphi_{z,w}^{gl} \cdot \frac{n_{d\backslash i}^{{gl},z} + \alpha}{n_{d,{\backslash i}}^{gl} + {T^{gl}\alpha}} \cdot \left( {n_{d,{s\backslash i}}^{gl} + \gamma^{gl}} \right)}},{z = 1},\ldots\mspace{14mu},T^{gl}$ ${{p\left( {{x_{i} = {loc}},{l_{i} = l},{z_{i} = {\left. z \middle| w_{i} \right. = w}},x_{\backslash i},{l_{\backslash i};\Omega}} \right)} \propto {\varphi_{z,w}^{loc} \cdot \psi_{l,z} \cdot \frac{n_{d,s,{\backslash i}}^{l} + \chi_{d,s,l}}{n_{d,s,{\backslash i}}^{loc} + \chi_{d,s}} \cdot \left( {n_{d,{s\backslash i}}^{loc} + \gamma^{loc}} \right)}},{z = 1},\ldots\mspace{14mu},T^{loc}$ After collecting a number of samples, a distribution over locations for each term w appearing in document d can be inferred by counting the number of times w is assigned to each location l as

${p\left( l \middle| w \right)} = {\frac{\#\left( {w\mspace{14mu}{appears}\mspace{14mu}{in}\mspace{14mu} d\mspace{14mu}{and}\mspace{14mu}{is}\mspace{14mu}{assigned}\mspace{14mu}{to}\mspace{14mu} l} \right)}{\#\left( {w\mspace{14mu}{appears}\mspace{14mu}{in}\mspace{14mu} d} \right)}.}$ Example Process

FIG. 8 shows an illustrative process 800 as performed by system 600 of FIG. 6 for automatically mining topic-related aspects from user-generated content, e.g., mining location-related aspects from travelogues and automatically performing snippet extraction and ranking (SER), e.g., geo-snippet extraction and ranking (GSER). This process is illustrated as a collection of blocks in a logical flow graph, which represents a sequence of operations that can be implemented in hardware, software, or a combination thereof. In the context of software, the blocks represent computer-executable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the recited operations. Note that the order in which the process is described is not intended to be construed as a limitation, and any number of the described process blocks can be combined in any order to implement the process, or an alternate process. Additionally, individual blocks may be deleted from the process without departing from the spirit and scope of the subject matter described herein. Furthermore, while this process is described with reference to the system 600 of FIG. 6, other architectures may implement this process in whole or in part.

At 802, content is identified from a content collection 804. For example, in response to request 110, one or more components of content service 602 accesses content such as general content 620, snippet collection 622, or travelogue collection 618. Similar to a travelogue collection 618, as mentioned above, content collection 804 includes user-generated content, although editorial content may also be included.

In various implementations content service 602 may be configured to receive a request 110 at various levels of granularity. For example, content service 602 may be configured to receive a single word or image as a destination query as well as various location descriptors as a request 110. In some instances, request 110 represents a “location+context term” query 606 that may be automatically generated using geo-snippet extraction and ranking as described herein.

At 806, location learning logic 608 decomposes a travelogue from content collection 804, for example as discussed above with regard to FIG. 2. Decomposition enables location learning logic 608 to learn locations and corresponding local topics as well as global topics from words in the travelogue by analyzing the content identified at 802. As discussed above, global topics are also filtered. Generally, the decomposition is accomplished by implementing a probabilistic topic model such as the Location-Topic (LT) model 610, discussed above, to discover topics from the travelogue and virtually simultaneously represent locations with appropriate corresponding topics of interest to tourists planning travel.

In several instances travelogues may be decomposed to location and context terms for processing by snippet extraction logic 616. In at least one implementation snippet extraction logic 616 extracts locations from local topics and mines the remaining local topic words for context terms to obtain geo-snippets 108.

At 808, selection logic 612, selects a candidate set corresponding to the locations identified in 806. For example, selection logic 612 extracts locations mentioned in the text of travelogues 104.

At 810, selection logic 612 provides the topic-related knowledge learned by the model, such as location-related knowledge, to support various application tasks.

FIG. 9 shows another example process 900 for automatically mining location-related aspects including extracting geo-snippets from travelogues.

Blocks 902 through 910 and 918 through 922, shown in the vertical center of FIG. 9, are typically performed in response to a request 110 received at content service 602. In some instances request 110 may be automatically generated as a “location+context term” query such as by snippet extraction logic 616. In response to the request 110, travelogue results are selected and provided, for example through viewer 604.

At 902 a location or location related topic of interest is ascertained from request 110, for example via location learning logic 608.

At 904 a travelogue is identified for mining, for example by selection logic 612.

At 906 the selected travelogue is decomposed, for example with Location-Topic (LT) model 610. In various embodiments, this corresponds with decomposition 200 and/or 1006 discussed with regard to FIGS. 2 and 8, above. In at least one implementation, a decomposition model (DM), e.g. document decomposition model (DDM), image decomposition model (IDM), etc. decomposes the travelogue. The decomposition model described herein uses a flexible and widely applicable approach. The base function is to partition a file into local topics including locations and location characteristics, and global topics. In various implementations the global topics are abandoned, and the locations and location characteristics facilitate compact representation and efficient indexing. However, global topics need not be abandoned, and may be mined in some implementations, for example to obtain traveler commentary on particular hotels, airlines or rental car companies serving a location.

In some situations, images in, or associated with travelogues or travel locations are represented by a “bag of visual terms” (BOV), which allows text indexing techniques to be applied in large-scale image retrieval systems. However, an image query using BOV may approximate a long-query due to the large number of terms, e.g. 100, 1000, 1500 visual terms. Thus techniques for typical text queries (e.g. 2-10 terms) are inapplicable and using some text indexing techniques, e.g. inverted list, returns results that are misleading because the most distinguishing terms may be disregarded.

In some instances, a document-like representation of an image may serve as a file for decomposition by the decomposition model. Because the processing to obtain the BOV representation is optional, image(s) 624 is illustrated with a dashed line in FIG. 9. As mentioned above, decomposition of the travelogue at 906 includes identifying local topics and global topics that include background words. In several embodiments, while the local-topic-related words are projected onto a feature vector, the global-topic words, or a predetermined number of the global-topic words are retained, and any remaining or background words are discarded. In at least one embodiment, the local-topic-related words are projected onto a feature vector and each of the global-topic words is discarded.

The processing represented by block 906 may be performed, for example, by location learning logic 608. As described above with reference to FIG. 6, location learning logic 608 decomposes a travelogue (d) according to LT model 610 to discover topics from travelogues and represent locations with the learned topics. A travelogue document is treated as a mixture of topics, where each topic is a multinomial distribution over terms in the vocabulary and corresponds to some specific semantics. According to the described LT model 610, travelogues are composed of local and global topics, and each location is represented by a mixture of (more specifically, a multinomial distribution over) local topics. Thus, the LT model 610 automatically discovers local and global topics, as well as each location's distribution over local topics, from travelogue collection 618.

Decomposition of a travel related file at 906 results in a representation of the file, shown as file representation 908. File representation 908 provides an effective approximation of a travelogue from collection 618, except that representation 908 requires much less storage space than the raw file. Further, representation 908 provides for an efficient indexing solution.

At 910, the representation 908 is used as the basis of a textual search against topic model 916 to define a location.

In some instances the process shown in dashed block 912 is an offline process, performed prior to, or simultaneously with, the other actions shown in FIG. 9, to prepare reference data which will be used by the run-time process of dynamically selecting results shown on the portion of FIG. 9 that is outside of block 912. In other instances, the process shown in dashed block 912 is performed during the run-time process of dynamically selecting results shown in FIG. 9.

At 914, an ontology of local topics is defined in a vertical domain of certain types of documents, e.g., travelogues, for use by topic model 916. The vertical domain is defined with a hierarchical tree structure. A topic model 916 such as the LT model described herein comprises a hierarchical category tree, which is based on an open directory project (ODP) or concept hierarchy engine (CHE), or other available taxonomies. The hierarchical category tree is made up of category nodes. In the hierarchical structure, category nodes represent groupings of similar topics, which in turn can have corresponding sub-nodes or smaller groups of topics.

Topic model 916 is compiled offline, and used as a resource, for example by block 910. In other embodiments, the topic model 916 is determined dynamically, in conjunction with other processing shown in FIG. 9.

At 918, the defined location is compared or mapped to the collection of travelogue content 618. In several embodiments the collection of travelogue content 618 comprises representations of individual records of the collection of travelogue content 618, and at 918, location learning logic 608 compares one or more of the location and/or the local topics of the representations of the records of the collection of travelogue content 618 and request 110.

At 920, selection logic 612 selects a candidate set of results based on the comparison performed at 918.

At 922, selection logic 612 ranks the candidate set of search results selected at 920 based on the location and/or the associated local topics.

FIG. 10 at 1000 shows an example of an implementation of candidate snippet ranking.

At 1002 a geographic relevance score is obtained. In various embodiments the geographic relevance score is obtained by snippet extraction logic 616, although other elements of content service 602 such as location learning logic 608 may obtain the geographic relevance score. An example of how a geographic relevance score is calculated in at least one implementation of geo-snippet extraction and ranking is presented below.

A geographic relevance to location l_(q) of a snippet s, which is represented by

W_(s), q_(s)) is computed based on associated location set

as

${{{{GeoRele}_{l_{q}}(s)} = {\frac{\sum\limits_{l \in \mathcal{L}_{s}}{{LocRele}_{l_{q}}(l)}}{\mathcal{L}_{s}} \in \left\lbrack {0,1} \right\rbrack}},{where}}\mspace{14mu}$ ${{LocRele}_{l_{q}}(l)} = \left\{ \begin{matrix} 1 & {l = l_{q}} \\ {\alpha\; \in \left\lbrack {0,1} \right\rbrack} & {l\mspace{14mu}{is}\mspace{14mu} a\mspace{14mu}{child}\mspace{14mu}{location}\mspace{14mu}{of}\mspace{14mu} l_{q}} \\ 0 & {{otherwise},} \end{matrix} \right.$ and |

| denotes the number of elements in location set

. This score can be interpreted as the proportion to which the locations mentioned in snippet s are relevant to location l_(q).

Locations mentioned in a snippet are not always reliable to measure the geographic relevance of the snippet. When locations other than l_(q) are mentioned in a snippet, which location the snippet is actually about, and/or a weight to be associated with each mentioned location, is determined. Moreover, for any snippet that only mentions the location l_(q), the geographic score is fixed to be one, and thus cannot differentiate the snippet's actual relevance to l_(q) from the other locations.

In consideration of the above issue, an associated word set W_(s) of each snippet is incorporated into the measurement of geographic relevance, under the assumption that the more words representative to a location appear in a snippet, the more likely the snippet is relevant to that location. The representativeness of word w to location l is measured by the conditional probability of the word given the location as

${{p\left( w \middle| l \right)} \propto {\#\left( {{w\mspace{14mu}{co}} - {{occur}\mspace{14mu}{with}\mspace{14mu} l\mspace{14mu}{in}\mspace{14mu} a\mspace{14mu}{snippet}}} \right) \times \log\frac{\mathcal{L}}{\sum\limits_{l \in \mathcal{L}}{\delta\left( {{w\mspace{14mu}{co}} - {{occur}\mspace{14mu}{with}\mspace{14mu} l\mspace{14mu}{in}\mspace{14mu} a\mspace{14mu}{snippet}}} \right)}}}},{w \in \mathcal{W}},$ (similar to TF-IDF) where #(observation) denotes the number of times of observation; δ(observation) denotes the existence of observation (i.e., 1 for true, and 0 for false);

is the universe set of unique locations mentioned in the snippet collection; W is the universe set of unique words appearing in the snippet collection. Based on this measurement, a modified geographic relevance score is obtained in various implementations. The modified geographic relevance score is defined as

${{{GeoRele}_{l_{q}}(s)} = {{{weight}_{s}\left( l_{q} \right)} \times \frac{\sum\limits_{l \in {\mathcal{L}`}_{s}}\left\lbrack {{{weight}_{s}(l)} \times {{LocRele}_{l_{q}}(l)}} \right\rbrack}{\sum\limits_{l \in {\mathcal{L}`}_{s}}{{weight}_{s}(l)}}}},$ where weight_(s)(l)=Σ_(wεW) _(s) p(w|l), and the first term denotes the absolute amount of information about l_(q) contained in snippet s, while the second term serves as a penalty factor denoting the relative weight of l_(q) among all locations mentioned in snippet s. In this way, snippets that exclusively mention location l_(q) can have different geographic relevance scores, according to the occurrences of representative words to location l_(q); while snippets mentioning more locations than l_(q) will be further penalized, relying on not only the number of mentions of each location, but also the representativeness of words to each location.

At 1004, a semantic relevance score is obtained. In various embodiments the semantic relevance score is obtained by snippet extraction logic 616, although other elements of content service 602 such as location learning logic 608 may obtain the semantic relevance score.

An example of how a semantic relevance score is calculated in at least one implementation of GSER is presented below.

By measuring relevance of each unique word in a snippet to a query word w_(q), based on their distance in semantic space, GSE enables leveraging the textual contexts of occurrences of query word w_(q) to recommend snippets containing not only the exact query word and processed (e.g., stemmed) representations of the query word w_(q), but also related and comprehensive information about the query word w_(q).

In several implementations, a snippet collection C, such as from snippet collection 622, is projected into a T-dimensional latent topic space. In some embodiments snippet collection C may exist as a part of travelogue collection 618. In at least one implementation, a travelogue collection, such as that represented at 618, is projected into a T-dimensional latent topic space rather than a snippet collection. In the T-dimensional latent topic space, each dimension is a topic characterized by a probability distribution over W unique words in the collection.

T topics are denoted by index zε{1, . . . , T}. And W unique words are denoted by index wε{1, . . . , W}. The distribution of topic z over unique words is denoted by φ_(z)={(w|z)}_(w=1:w). The distribution of collection C over topics is denoted by {p(z|C)}_(z=1:T). In at least one implementation probabilistic latent semantic analysis (PLSA) is applied to learn topics {φ_(z)}_(z=1:T) and {p(z|C)}_(z=1:T).

A unique word w is represented in the topic space by computing its distribution over topics as θ_(w)={p(z|w)}_(z=1:T),

${w \in \left\{ {1,\ldots\mspace{14mu},W} \right\}},{{{p\left( z \middle| C \right)} + ɛ} = \frac{{p\left( w \middle| z \right)}{p\left( z \middle| w \right)}}{{\sum\limits_{z = 1}^{T}{{p\left( w \middle| z^{\prime} \right)}{p\left( z^{\prime} \middle| C \right)}}} + {T\; ɛ}}},$ zε{1, . . . , T}, wε{1, . . . , W}, where ε>0 is used to smooth the resulting distribution θ_(w) to ensure that each component probability p(z|w) is greater than zero.

Given the representation of words in the topic space, the word-level semantic relevance of a word w is defined to a given query word w_(q) based on the Kullback-Leibler (KL) divergence from θ_(w) _(q) to θ_(w) as WordSemRele_(w) _(q) (w)=exp[−τ·D_(KL)(θ_(w) _(q) ∥θ_(w))]ε[0,1], where KL divergence

${D_{KL}\left( \theta_{w_{q}}||\theta_{w} \right)} = {\sum\limits_{z = 1}^{T}{{p\left( z \middle| w_{q} \right)}\log\frac{p\left( {z:w_{q}} \right)}{p\left( {z:w} \right)}}}$ and coefficient τ>0 controls the overall relevance of words other than the query word w_(q). The semantic relevance of word w_(q) to itself is always equal to one, independent of the semantic relevance to other words.

The semantic relevance of snippet s to query word w_(q) is the sum of the word-level semantic relevance to w_(q) of each word in the snippet's word set w_(s) as represented by SemRele_(w) _(q) (s)=Σ_(wεW) _(s) WordSemRele_(w) _(q) (w).

In various implementations, either operation 1002 or 1004 may be replaced by other scoring models without departing from the disclosure of geo-snippet extraction described herein.

At 1006, in several implementations, an overall snippet score is computed based on the geographic relevance score obtained at 1002 and the semantic relevance score obtained at 1004. In at least one implementation the overall snippet score computed at 1006 represents all or part of location-representative knowledge 106, and/or location related knowledge to be provided at 810 of FIG. 8.

The overall score of a snippet s is computed as Score_(l) _(q) _(,w) _(q) (s)=GeoRele_(l) _(q) (s)×SemRele_(w) _(q) (s)×q_(s). Individually, neither the geographic relevance nor the semantic relevance considers the effect of snippet length. Long snippets tend to have higher scores than short snippets. Hence, in the event that the quality score q_(s) of snippet s does not handle the normalization of different snippet lengths, the above equation is further multiplied by a normalization factor, such as

$\frac{1}{W_{s}}\mspace{14mu}{or}\mspace{14mu}{\frac{1}{\log\left( {1 + {W_{s}}} \right)}.}$

At 1008, in several implementations, snippets are ranked based on snippet scores computed at 1006. In at least one implementation a configurable number of snippets, ranked in accordance with the score computed at 1006, represent geo-snippets 108. Moreover, ranking snippets represented at 1008 in accordance with the score computed at 1006 may make up all or part of the ranking performed at 922 in various implementations.

In various implementations all of the snippets in a candidate set are ranked in decreasing order of their overall scores, and the top snippets are recommended, such as to applications or end users.

FIG. 11 shows an example process 906 to decompose a travelogue. Process 906 involves decomposing a file, e.g. a travelogue or a blog into local topics and global topics, which transforms the file to file representation 908 shown in FIG. 9.

At 1102 a term-document matrix is generated to represent a collection of travelogues 104, where the j^(th) column encodes the j^(th) document's distribution over terms, as illustrated at 502 of FIG. 5.

At 1104, based on this representation, the location learning logic 608 decomposes a given term-document matrix 502 into multiple matrices, including Term-LocalTopic matrix 508, Term-GlobalTopic matrix 514, LocalTopic-Location matrix 510, GlobalTopic-Document matrix 516 and Location-Document matrix 512 as discussed above.

At 1106 locations are extracted. In some instances observed information such as existing location labels, (e.g., user-submitted tags, automatically generated tags, etc.), associated with a travelogue may be employed to build the Location-Document matrix 512. However, due to such document-level labels typically being too coarse to cover all the described locations in travelogues, or even incorrectly marked, extracting locations from travelogue text may be advantageous. As described above, there are several methods for location extraction, e.g., looking up a gazetteer, or applying a Web service like Yahoo Placemaker™. In several implementations location learning logic 608 employs an extractor based on a gazetteer and location disambiguation algorithms considering geographic hierarchy and textual context of locations.

The extracted locations can provide an indication of locations described in a travelogue. However, such extracted locations are not sufficient to complete the Location-Document matrix 512 due to an observed gap between the extracted locations and the locations actually described in the travelogue. For instance, a series of locations may be mentioned in a trip summary, without any description or with minimal description in the text of the travelogue. The tools and techniques for mining location-related aspects from travelogues leverages how travelogue authors typically concentrate descriptions of some locations in consecutive sentences. Thus, consecutive words tend to correspond to the same locations. Considering these observations, location learning logic 608 treats all of the words in a segment (e.g., a document, paragraph, sentence, or sliding window) as sharing a multinomial distribution over locations, which is affected by a Dirichlet prior derived from the extracted locations in the segment. In this way, the Location-Document matrix 512 is kept variable to better model the data, while also benefiting from the extracted locations as priors.

At 1108 parameters including latent variables are estimated. The estimation is conditioned on observed variables: p(x, l, z|w, δ, α, β, γ, η), where x, l, and z are vectors of assignments of global/local binary switches, locations, and topics terms in the travelogue collection 618.

In several implementations collapsed Gibbs sampling is employed for updating global topics and local topics during parameter estimation 1108. For example, location learning logic 608 employs collapsed Gibbs sampling with the following updating formulas.

${{{For}\mspace{14mu}{global}\mspace{14mu}{topic}\mspace{14mu} z} \in \left\{ {1,\ldots\mspace{14mu},T^{gl}} \right\}},{{p\left( {{x_{i} = {gl}},{z_{i} = {\left. z \middle| w_{i} \right. = w}},x_{\backslash i},z_{\backslash i},w_{\backslash i},\alpha,\gamma,\eta^{gl}} \right)} \propto {\cdot \frac{n_{w,{\backslash i}}^{{gl},z} + \eta^{gl}}{{\sum{w^{\prime}n_{d,{\backslash i}}^{gl}}} + {W\;\eta^{gl}}} \cdot \frac{n_{d,{\backslash i}}^{{gl},z} + \alpha}{n_{d,{\backslash i}}^{gl} + {T^{gl}\alpha}} \cdot \left( {n_{d,s,{\backslash i}}^{gl} + \gamma^{gl}} \right)}},{{{and}\mspace{14mu}{for}\mspace{14mu}{local}\mspace{14mu}{topic}\mspace{14mu} z} \in \left\{ {1,\ldots\mspace{14mu},T^{loc}} \right\}},{l \in \mathcal{L}_{d,s}}$ p(x_(i) = loc, l_(i) = l, z_(i) = z|w_(i) = w, x_(∖i), l_(∖i)z_(∖i), w_(∖i), β, γ, η^(loc)) where n_(w,\i) ^(gl,z) denotes the number of times term w is assigned to global topic z, and similarly n_(w,\i) ^(loc,z) denotes the number of times term w is assigned to local topic z.

Regarding document d, n_(d,\i) ^(gl) denotes the number of times a word in document d is assigned to global topic z, while n_(d,\i) ^(gl) denotes the number of times a word in document d is assigned to a global topic. Regarding location l, n_(l,\i) ^(loc,z) denotes the number of times a word assigned to location l is assigned to local topic z, out of n_(l,\i) words assigned to location l in total. Regarding segment s, n_(d,s\i) ^(l) denotes the number of times a word in segment s of document d is assigned to location l, and consequently a local topic, while n_(d,s\i) ^(gl) denotes the number of times a word in segment s of document d is assigned to a global topic, and n_(d,s,\i) ^(loc) denotes the number of times a word in segment s of document d is assigned to a local topic. The subscript \i indicates that the i^(th) word is excluded from computation.

After such a Gibbs sampler reaches burn-in, location learning logic 608 harvests several samples and counts the assignments to estimate the parameters: φ_(z,w) ^(x) ∞n _(w) ^(x,z)+η^(x) ,xε{gl,loc},z=1, . . . ,T ^(x),ψ_(l,z) ∞n _(l) ^(loc,z) +β,z=1, . . . ,T ^(loc)

At 1110, location learning logic 608 obtains a representation 908 of user-generated content, (e.g., travelogue, blog, etc.). The file is represented by local topics illustrated in the (I) box 504 of FIG. 5, and global topics illustrated in the (II) box 506 of FIG. 5.

FIG. 12 illustrates a process 1200 of travelogue modeling to obtain topics and locations for comparison at 918 in at least one implementation. Process 1200 involves learning logic 608 processing a file, e.g. a travelogue or a blog to train an LT model to learn local topics and global topics.

At 1202, learning logic 608 performs text pre-processing including stemming and stop-word removal.

At 1204, a number of local and global topics are set. In several implementations an LT model 610 is trained on a variety of data sets to learn a configurable number of local topics and global topics. For example, the numbers of local and global topics may be set to a range corresponding to the size of the data set, e.g., about 0.10, 0.15, 0.20, etc, or empirically, e.g., 300, 200, 100, 50, etc.

At 1206, words within a threshold probability in a topic are extracted. In various implementations the threshold is configurable, for example based on the total number of words in a travelogue, a travelogue collection, or empirically, e.g., 5, 10, 20, etc.

At 1208, a correlation between a local topic z and a location/is measured by the conditional probability (z|l), which is equal to ψ_(l), as discussed above.

At 1210, learned correlations are served for use in a variety of travel planning applications. In several implementations the correlations are stored for future use as part of travelogue collection 618 and maintained for use by a service such as content service 602.

As noted above, the order in which the processes have been described is not intended to be construed as a limitation, and any number of the described process blocks can be combined in any order to implement the processes, or alternate processes. Additionally, individual blocks or processes may be deleted without departing from the spirit and scope of the subject matter described herein. For example, in at least one embodiment, process 800 as discussed regarding FIG. 8, is performed independently of processes 900, 906, and 1200, as discussed regarding FIGS. 9, 11, and 12. However, in other embodiments, performance of one or more of the processes 800, 900, 906, and 1200 may be incorporated in, or performed in conjunction with each other. For example, process 906 may be performed in lieu of block 806 of FIG. 8.

Example Operating Environment

The environment described below constitutes but one example and is not intended to limit application of the system described above to any one particular operating environment. Other environments may be used without departing from the spirit and scope of the claimed subject matter. The various types of processing described herein may be implemented in any number of environments including, but not limited to, stand along computing systems, network environments (e.g., local area networks or wide area networks), peer-to-peer network environments, etc. FIG. 13 illustrates a variety of devices and components that may be implemented in a variety of environments in which mining location-related aspects from user-generated content may be implemented.

FIG. 13 illustrates an example operating environment 1300 including one or more computing devices 1302 and one or more servers 1304 connected through one or more networks 1306. Computing devices 1302 may include, for example, computing devices 1302(1)-(M). Computing device 1302 may be one of a variety of computing devices, such as a desktop computer, a laptop computer, a smart phone, a multi-function mobile device, a personal digital assistant, a netbook computer, a tablet computer, or a server. Other examples of computing devices 1302 not shown in FIG. 13 may include, for example, a set-top box, a cellular telephone, and a laptop computer.

Servers 1304 include, for example, web server 1304(1), a server farm 1304(2), a content server 1304(3), and content provider(s) 1304(4)-(N). In various implementations, processing and modules discussed above with reference to FIGS. 6-12 may be implemented in any number of combinations across any number of the servers 1304 and computing devices 1302 shown in FIG. 13. For example, in various embodiments, results may be served by, or requested from, travelogue collection 618 housed on a content server 1304(3) or directly from content provider(s) 1304(4)-(N).

In the illustrated embodiment a web server 1304(1) may also host images and/or document-like representations of images 624, alternately called an image corpus, which content service 602 searches for graphically similar images. As illustrated, modules 1308 may be located at a server, such as web server 1304 and/or may be included in modules 1308 on any other computing device 1302. Similarly, a request 110, sometimes in the form of location+context terms 606, may be located at computing device 1302, sent over a network such as network(s) 1306 via streaming media, stored at a server 1304, or as part of a webpage such as at web server 1304(1) or server farm 1304(2).

In the example illustrated, content providers 1304(4)-(N) provide content that forms travelogue collection 618, which may then be accessed via networks 1306 through content server 1304(3) while another server 1304 maintains a collection of requests 1310.

Network 1306 may enable communication between a plurality of device(s) 1302 and/or server(s) 1304. Network 1306 can comprise a global or local wired or wireless network, such as the Internet, a local area network (LAN), or an intranet.

As illustrated, example computing device 1302 further includes at least one input/output interface 1312 and network interface 1314. Input/output interface 1312 enables computing device 1302 to receive input (e.g., request 110) and output results (e.g., through viewer 604). Network interface 1314 enables communication between computing device 1302 and servers 1304 over network(s) 1306. For example, request 110 may be communicated from computing device 1302, over network 1306, to web server 1304(1).

Example computing device 1302 includes one or more processor(s) 1316 and computer-readable storage media such as memory 1318. Depending on the configuration and type of device 1302, the memory 1318 can be implemented as, or may include, volatile memory (such as RAM), nonvolatile memory, removable memory, and/or non-removable memory, any may be implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data shown generally at 1308. Also, the processor(s) 1316 may include onboard memory in addition to or instead of the memory 1318. Some examples of storage media that may be included in memory 1318 and/or processor(s) 1316 include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the processor(s) 1316. The computing device 1302 may also include input/output devices including a keyboard, mouse, microphone, printer, monitor, and speakers (not shown).

Various types of programming 1320 is embodied on the computer-readable storage media 1318 and is accessed and/or executed by processor(s) 1316. In at least one embodiment, the computer-readable storage media comprises, or has access to, a browser 1322, which is a module, program, or other entity capable of interacting with a network-enabled entity. Request 110 may be submitted to content service 602 via browser 1322 in at least one instance.

In various implementations modules 1308 contain computer-readable instructions for building an LT model 610 and for implementing content service 602 including location learning logic 608. Device 1302 represents computing hardware that can be used to implement functional aspects of the system shown in FIG. 6 at a single location or distributed over multiple locations. Network interface 1314 can connect device 1302 to a network 1306.

Device 1302 may serve in some instances as server 1304. In instances where device 1302 operates as a server, components of device 1302 may be implemented in whole or in part as a web server, in a server farm, as a search server, and as one or more provider(s) of content. Although discussed separately below, it is to be understood that device 1302 may represent such servers and providers of content.

Device 1302 also stores or has access to request 110. Although shown located at server 1304 in FIG. 13, such content may alternatively (or additionally) be located at device 1302, sent over a network via streaming media or as part of a service such as content service 602, or stored as part of a webpage, such as by a web server. Furthermore, in various embodiments request 110 may be located at least in part on external storage devices such as local network devices, thumb-drives, flash-drives, CDs, DVRs, external hard drives, etc. as well as network accessible locations.

In the context of the present subject matter, programming 1520 includes modules 1508, supplying the functionality for implementing tools and techniques for mining location-related aspects from travelogues and other aspects of FIG. 1 and FIG. 6. The modules 1308 can be implemented as computer-readable instructions, various data structures, and so forth via at least one processor 1316 to configure a device 1302 to execute instructions to implement content service 602 including location learning logic 608, LT model 610, selection logic 612, and/or snippet extraction logic 616 based on request 110. The computer-readable instructions may also configure device 1302 to perform operations implementing location learning logic 608 comparing request 110 with topics of travelogue collection 618 or snippet collection 622 to return results based on request 110. Functionality to perform these operations may be included in multiple devices or a single device as represented by device 1302.

Various logical components that enable mining location-related aspects from travelogues, geo-snippet extraction, travelogue collections 618, and snippet collections 622 may also connect to network 1306. Furthermore, request 110 may be sent locally from a computing device such as 1302 or from one or more network accessible locations, streamed, or served from a server 1304.

Aspects of computing devices, such as computing devices 1302 and 1304, in at least one embodiment include functionality for mining location-related aspects of travelogues using location learning logic 608 based on a collection or requests 1310 containing request 110.

CONCLUSION

Although mining topic-related aspects from user-generated content for snippet extraction and ranking (SER) has been described in language specific to structural features and/or methodological acts, it is to be understood that the techniques defined in the appended claims are not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as illustrative forms of implementing the claims. 

We claim:
 1. A computer-readable storage medium having computer executable instructions encoded thereon, the computer executable instructions for execution by a processor to perform location-related mining operations on a travelogue, the operations comprising: receiving a query comprising a particular location and a context term which describes the particular location; identifying at least one snippet, the at least one snippet comprising a segment of user-generated content; filtering out one or more biased context terms from the at least one snippet, the one or more biased context terms describing a plurality of locations; extracting the particular location from the at least one snippet; mining the context term which describes the particular location from the at least one snippet; calculating a geographic relevance score for the at least one snippet based at least in part on the particular location; calculating a semantic relevance score for the at least one snippet based at least in part on the context term which describes the particular location; computing a snippet score based at least in part on the geographic relevance score and the semantic relevance score for the at least one snippet; and ranking the at least one snippet and at least one other snippet based at least in part on the snippet score of the at least one snippet.
 2. A computer-readable storage medium as recited in claim 1, wherein the context term which describes the particular location comprises one of a style word or a keyword corresponding to a local topic.
 3. A computer-readable storage medium as recited in claim 1, wherein the query is received in a form of location-representative knowledge from an automated knowledge mining operation.
 4. A computer-readable storage medium as recited in claim 1, the operations further comprising; building a snippet collection from the at least one snippet and the at least one other snippet, wherein the at least one snippet and the at least one other snippet are assembled from one or more travelogues; and generating, in response to the query, representative tags for the particular location.
 5. A computer-readable storage medium as recited in claim 4, wherein building the snippet collection from one or more travelogues comprises: identifying one or more particular locations mentioned in one or more travelogues; segmenting the one or more travelogues into one or more snippets, each snippet containing at least one identified particular location; determining whether a number of words of the one or more snippets meets a length constraint; and compiling the snippet collection from the one or more snippets that meet the length constraint.
 6. A computer-readable storage medium as recited in claim 5, wherein the length constraint comprises one or both of a minimum number of words or a maximum number of words.
 7. A computer-readable storage medium as recited in claim 1, the operations further comprising enriching the travelogue with one or more images based at least in part on matching the particular location and the context term which describes the particular location.
 8. A computer-readable storage medium as recited in claim 1, wherein the at least one snippet is represented by at least one particular location, words within the at least one snippet other than locations, and a snippet quality score.
 9. A computer-implemented method comprising: identifying a travelogue for location-related mining; decomposing the travelogue into a plurality of portions of the travelogue to identify a particular location and a context term, the context term characterizing the particular location without co-occurring with a plurality of locations; filtering out one or more noisy context terms that do not characterize the particular location and co-occur with a plurality of locations from at least one portion of the travelogue; extracting the particular location from the portion of the travelogue as decomposed; mining the context term which characterizes the location from the portion of the travelogue as decomposed; creating a geo-snippet comprising the particular location and the context term which characterizes the particular location; obtaining a geographic relevance score corresponding to the geo-snippet; obtaining a semantic relevance score corresponding to the geo-snippet; and computing, by a processor, a snippet score corresponding to the geo-snippet based at least in part on the geographic relevance score and the semantic relevance score.
 10. A computer-implemented method as recited in claim 9, further comprising ranking a plurality of geo-snippets based at least in part on the snippet score.
 11. A computer-implemented method as recited in claim 9, further comprising building at least one tag from information comprising one or both of the location or the context term which characterizes the location.
 12. A computer-implemented method performed on one or more travelogues comprising: identifying at least one snippet from the one or more travelogues; filtering out one or more noisy context terms from the at least one snippet, the noisy context terms co-occurring with a plurality of locations; extracting a particular location from the at least one snippet; mining a context term which characterizes the particular location from the at least one snippet; calculating a geographic relevance score for the at least one snippet based at least in part on the particular location; calculating a semantic relevance score for the at least one snippet based at least in part on the context term which characterizes the particular location; computing a snippet score based at least in part on the geographic relevance score and the semantic relevance score for the at least one snippet; ranking the at least one snippet based at least in part on the snippet score; and assembling the at least one snippet into a snippet collection.
 13. A method as recited in claim 12, wherein the semantic relevance score is calculated based at least in part on a sum of distances in a topic space from a query word to a plurality of unique words contained in the at least one snippet.
 14. A method as recited in claim 12, wherein computing the snippet score based at least in part on the geographic relevance score and the semantic relevance score for the at least one snippet includes determining a quality score based at least in part on snippet length.
 15. A method as recited in claim 12, further comprising: receiving the particular location and the context term which characterizes the particular location from a query; and returning the at least one snippet ranked based at least in part on the snippet score responsive to the query.
 16. A method as recited in claim 12, further comprising, where there is a plurality of snippets, normalizing the snippet score with a normalization factor that accounts for different lengths between the plurality of snippets.
 17. A computer-readable storage medium as recited in claim 1, wherein calculating the geographic relevance score is based at least in part on how often the particular location appears in the at least one snippet.
 18. A computer-readable storage medium as recited in claim 1, wherein mining the context term is performed with a latent Dirichlet allocation.
 19. A computer-readable storage medium as recited in claim 1, wherein the filtering out is based at least in part on comparing the context terms to a list of biased context terms.
 20. A computer-readable storage medium as recite in claim 19, wherein the list of biased context terms comprises context terms that correspond to at least one of transportation, accommodation, or opinion. 